1. Field of the Invention
The present invention relates to the field of software architecture and modeling and more particularly to requirements traceability in a model driven development (MDD) environment.
2. Description of the Related Art
Modern software systems have become increasingly pervasive and open-ended, and are expected to deliver critical computing services in a dependable manner across multiple, heterogeneous computing environments. To better manage the complexity of developing modern software systems, software development strategies can be employed which raise the level of abstraction at which software systems are conceived, implemented and evolved. Model-driven development (MDD) represents one such software development strategy in which models are the primary artifacts of software development.
Modeling complex applications has several general benefits which can include a better understanding of the business or engineering situation at hand, the construction and design of application architectures, and the creation of visualizations of code and other forms of implementation. In this regard, the essence of modeling is abstraction and any visualization of code is indeed an abstraction in that application information can be selectively exposed while details deemed unnecessary or unwanted can be suppressed. Nevertheless, the terms “code model”, “implementation model” or “platform-specific model” (PSM) are often used to qualify such abstractions from a higher-level, platform independent model (PIM) that does not have such direct relationships to program code.
In conventional MDD, visual models can be created utilizing model constructs or model types. The visual models can be created from a methodological process that often begins with application requirements and culminates with a high-level architectural design model. Developers can create a detailed design model from which skeletal code can be generated to an integrated development environment (IDE). The IDE, in turn, can be used to complete the detailed coding. Any changes to the code that affect the design model can be synchronized back into the model. Likewise, any model changes can be synchronized into the existing code.
Advanced MDD tools provide for traceability. Traceability refers to the logical linkage between a design requirement and a model element in the resultant model, and on through source code produced as an implementation of the model element. Traceability can be both data driven and visual. The latter—visual—can be of enormous benefit to the end user so that the end user can visually confirm that the requirements set forth in a functional specification indeed have been reflected in the implementation. In the former circumstance, it can be challenging for the end user to confirm a relationship between requirement and implementation.
Advanced forms of the MDD tool, like Rational Software Architect™ manufactured by IBM Corporation of Armonk, N.Y. provide for manually added trace relationships and the visualization of those manually added trace relationships in order to visually demonstrate a path from specification of a requirement to implementation of software or some such other software artifact. Manually adding trace relationships can be an unwieldy process, though, for a large implementation. In the past, the Rational Software Architect MDD tool has provided for the automated detection of implicit relationships between requirements and artifacts, though, once detected these implicit relationships have been presented within a table failing to demonstrate a clear path from specification of a requirement to implementation.